home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MIDICraft's MIDINET CD-ROM
/
MIDICraft's MIDINET CD-ROM.iso
/
DOSUTILS
/
MIDRESET.DOC
< prev
next >
Wrap
Text File
|
1997-03-05
|
5KB
|
158 lines
******************************
MIDRESET v1.1
add/remove reset sysex commands to/from midi binaries
by Guenter Nagler
1997
(gnagler@ihm.tu-graz.ac.at)
******************************
[0] FEATURES
+ reads a binary midi file
+ writes a binary midi file
+ removes sysex reset commands (XG, GM, GS)
+ optionally adds one or more sysex reset commands (XG, GM, GS)
to beginning of midi song
[1] BACKGROUND
Correct initialization of a midi output device (soundcard or keyboard)
is necessary, or there might be problems with the programs (midi
instruments) causing bad sound.
Often midi files leave a device in an unexpectable state, so that next
midi files that don't initialize continue playing within this state.
Usual problems are:
* drums are played by Piano
* pitchbend wheel is used with wrong pitchbend range
* special sounds of soundcard are not used (e.g. GS, XG) and the
standard sounds are not a good replacement for certain songs
This utility can be used to modify midi files by removing or adding
reset commands for different GM compatible modes:
GM General Midi
GS General Standard (Roland)
XG Extended General Midi (Yamaha)
[2] FILES DESCRIPTION
MIDRESET.EXE.........converter program
MIDRESET.DOC.........this file, showing usage of MIDRESET.EXE
MIDIIO.HPP..........header file for a c++ midi parser
MIDIIO.CPP..........source code for a c++ midi parser
MIDRESET.CPP.........c++ source code for modifying midi files
MIDRESET.MAK.........make file for project
MIDRESET.CFG.........compiler options for make
MIDRESET.PRJ.........compiler project for Borland (tm) c++ compilers
only MIDRESET.EXE is required to run program
[3] COPYRIGHT
MIDRESET (c) 1997 was created by Guenter Nagler.
MIDRESET is free and may be used as you wish with this one exception:
You may NOT charge any fee or derive any profit for distribution
of MIDRESET. Thus, you may NOT sell or bundle MIDRESET with any
product in a retail environment (shareware disk distribution, CD-ROM,
etc.) without permission of the author.
You may give MIDRESET to your friends, upload it to a BBS, or ftp it to
another internet site, as long as you don't charge anything for it.
[4] DISCLAIMER
MIDRESET was designed to handle 100% compatible midi files.
The midi parser was tested with 600 different midi files but
I can not say if each 100% midi compatible midi file can be
correctly converted.
So I give no guarantees of the results, especially with non 100%
compatible midi files.
If you find a midi file that you think to be 100% compatible midi
that is not correctly converted, please send a sample file to
gnagler@ihm.tu-graz.ac.at .
Use MIDRESET at your own risk. Anything you do with MIDRESET is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running MIDRESET
is your responsibility, and the author will not be liable.
If you don't understand these terms, or are not sure of something, or
are afraid something bad might come of using MIDRESET, don't use it!
You are here forewarned.
[5] INSTALLATION
[MSDOS]
Simply copy MIDRESET.EXE in a directory that is in your path.
When you start the program without arguments
[UNIX]
compile sources with your C++ compiler (e.g. GNU Compiler g++):
g++ -o midreset midreset.cpp midiio.cpp
and run program
$ midreset
C:\> MIDRESET
you should get the usage text (see next section)
[6] USAGE
usage: MIDRESET [-gm] [-xg] [-gs] midifile.mid gmfile.mid
The parts in brackets [...] are optional.
The program MIDRESET allows following option:
-version get program version
-xg add XG reset command
-gs add GS reset command
-gm add GM reset command
Following sysex commands found in the midi file will be removed (ignored):
GM Reset F0 7E 7F 09 01 F7
GS Reset F0 0A 41 10 42 12 40 00 7F 00 41 F7
XG Reset F0 08 43 10 4C 00 00 7E 00 F7
GS Exit F0 0A 41 10 42 12 40 00 7F 7F 42 F7
All other commands will be copied.
Option -xg adds sysex to beginning of first track:
XG Reset F0 08 43 10 4C 00 00 7E 00 F7
Option -gs adds sysex to beginning of first track:
GS Reset F0 0A 41 10 42 12 40 00 7F 00 41 F7
Option -gm adds sysex to beginning of first track:
GM Reset F0 7E 7F 09 01 F7
Hint: It is allowed to add more than one reset commands.
The order is defined by program: GM XG GS
[8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
WWW: http://hgiicm.tu-graz.ac.at/Cpub
contains all my dos/unix midi programs
EMAIL: gnagler@ihm.tu-graz.ac.at
[9] USE
example: remove any reset sysex commands in a midi file
midreset reset.mid noreset.mid
example: add GM reset sysex to midi file
midreset -gm original.mid orig_gm.mid
example: add XG reset sysex to midi file
midreset -gm -xg original.mid orig_xg.mid
[10] CHANGES
v1.0 to v1.1:
* use GM Reset sysex "F0 05 7E 7F 09 01 F7" instead of "F0 7E 7F 09 01 F7"
because second does not work with some programs/devices